import Vue from 'vue'
import App from '@/App'
import router from '@/router'                 // api: https://github.com/vuejs/vue-router
import store from '@/store'                   // api: https://github.com/vuejs/vuex
import VueCookie from 'vue-cookie'            // api: https://github.com/alfhen/vue-cookie
import '@/element-ui'                         // api: https://github.com/ElemeFE/element
import '@/icons'                              // api: http://www.iconfont.cn/
import '@/element-ui-theme'
import '@/assets/scss/index.scss'
import httpRequest from '@/utils/httpRequest' // api: https://github.com/axios/axios
import { isAuth } from '@/utils'
import cloneDeep from 'lodash/cloneDeep'
import {JSEncrypt} from 'jsencrypt'
import {rsaMethod} from '@/views/modules/product/rsaMethod'

Vue.use(VueCookie)
Vue.config.productionTip = false

// 非生产环境, 适配mockjs模拟数据                 // api: https://github.com/nuysoft/Mock
if (process.env.NODE_ENV !== 'production') {
  require('@/mock')
}

/**
 * 配置全局的加密方法
 * @param obj 需要加密的字符串
 */
 Vue.prototype.$encruption = rsaMethod
//  function (obj) {
//   let encrypt = new JSEncrypt();
//   encrypt.setPublicKey(
//     "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKz/synHm7fzHiPVm7nB5ypWlyr2KQmpcqfis4/KdwHKT9OsUC4Mijw/LNCfy+MQGFm04YBN7T51vAvy36ShuA3bcLi1Ld6QAehZ/MlA7Jejn/sp/lEFFVbw20aIVmP2rvgs+g2fk+ejQ1Ba2Rz/yQLZZvublpwdJrY3+cYmOXjwIDAQAB"
//   )
//   return encrypt.encrypt(obj);
// };

// Vue.prototype.$encryptByPublicKey=function(content) {
//   let encrypt=new JSEncrypt();
//   encrypt.setPublicKey("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKz/synHm7fzHiPVm7nB5ypWlyr2KQmpcqfis4/KdwHKT9OsUC4Mijw/LNCfy+MQGFm04YBN7T51vAvy36ShuA3bcLi1Ld6QAehZ/MlA7Jejn/sp/lEFFVbw20aIVmP2rvgs+g2fk+ejQ1Ba2Rz/yQLZZvublpwdJrY3+cYmOXjwIDAQAB")
//   return encrypt.encrypt(content);
// };

// 挂载全局
Vue.prototype.$http = httpRequest // ajax请求方法
Vue.prototype.isAuth = isAuth     // 权限方法

// 保存整站vuex本地储存初始状态
window.SITE_CONFIG['storeState'] = cloneDeep(store.state)

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store,
  template: '<App/>',
  components: { App }
})
